package entidadesBD;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import entidadesVO.*;

@Entity
@Table(name = "articulos_palc")
public class ArticulosPALC implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private int cantidad;
	private PALC palc;
	private Articulo articulo;
	private CentroDistribucion centroDistribucion;
	
	private int codigoArticulosPALC;

	private int procesado;
	
	public ArticulosPALC(int cantidad, Articulo articulo){
		this.cantidad = cantidad;
		this.articulo = articulo;
	}
	/*
	 * Constructor Vacio
	 */
	public ArticulosPALC(){
		
	}
	
	@Column
	public int getCantidad() {
		return cantidad;
	}
	public void setCantidad(int cantidad) {
		this.cantidad = cantidad;
	}
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	public int getCodigoArticulosPALC() {
		return codigoArticulosPALC;
	}
	public void setCodigoArticulosPALC(int codigoArticulosPALC) {
		this.codigoArticulosPALC = codigoArticulosPALC;
	}
	
	@ManyToOne
	public PALC getPalc() {
		return palc;
	}
	public void setPalc(PALC palc) {
		this.palc = palc;
	}
	
	@OneToOne
	@JoinColumn(name = "articulo")
	public Articulo getArticulo() {
		return articulo;
	}
	public void setArticulo(Articulo articulo) {
		this.articulo = articulo;
	}
	
	@OneToOne
	@JoinColumn(name = "centro_distribucion")
	public CentroDistribucion getCentroDistribucion() {
		return centroDistribucion;
	}
	public void setCentroDistribucion(CentroDistribucion centroDistribucion) {
		this.centroDistribucion = centroDistribucion;
	}
	
	@Column
	public int getProcesado() {
		return procesado;
	}
	public void setProcesado(int procesado) {
		this.procesado = procesado;
	}
	
	@Transient
	public ArticulosPALCVO getArticulosPALCVO(){
		
		ArticuloVO articuloVO = new ArticuloVO();
		articuloVO = articulo.getArticuloVO();

		CentroDistribucionVO centroDistribucionVO = new CentroDistribucionVO();
		centroDistribucionVO = centroDistribucion.getCentroDistribucionVO();

		ArticulosPALCVO articulosPALCVO = null;
		
		articulosPALCVO = new ArticulosPALCVO(articuloVO, cantidad, centroDistribucionVO, codigoArticulosPALC, procesado);
			
		return articulosPALCVO;
	}
	
	public void setArticulosPALC(ArticulosPALCVO articulosPALCVO){
		
		cantidad = articulosPALCVO.getCantidad();
		procesado = articulosPALCVO.getProcesado();
	}
}
